import store from '@/store'
import { CtiModule } from './index'
import { CallCardModule } from '@/store/modules/cti/callCard';
import { Message } from 'element-ui'

export const ctiEventHandler = (evtJson: any) => { // 用于socket接收到的事件分发
  if (evtJson.type === 'queueAgentUpdate' || evtJson.type === 'queueAgentRemove') { // 技能组内座席更新||移除 =》 更新电话条上面的技能组内的座席信息（转移或者是咨询窗口打开的时候，转移的座席状态实时变更）
    CtiModule.updateQueueAgent(evtJson || { body: [] })
  } else {
    if (evtJson.body && evtJson.body.agentNumber === store.state.common.session.user.agentNumber) { // 是当前座席的事件，更新电话条状态
      CallCardModule.proxyCard(evtJson) // 通话卡片更新
      CtiModule.setCurrentEvent(evtJson.body)
      if (evtJson.body.callEvent === 'hangup') { // 挂断电话的时候，调用关闭电话条上座席信息的推送
        CtiModule.CtiCommonAction({ url: '/base/action/agentStatus/clearQueueAgentEventPush', method: 'POST', data: {}, hideLoading: true })
      }
    }
  }
}

/**
 * mopower 的打电话发短信回调函数
 * @param param { type, num } ==> { 事件类型 电话号码 }
 */
export const mpCallMsgEvent = (param: any) => {
  // 类型 type: call | sms
  // 号码 num: '156xxxx3419'
  switch (param.type) {
    case 'call':
      console.log('打电话：', param.num);
      CtiModule.CtiDialoutAction({ calleeNumber: param.num }).then((res: any) => {
        if (res && res.success) {
          Message.success('外呼成功');
        }
      })
      break
    case 'sms':
      console.log('发短信：', param.num);
      Message.error('暂不支持短信发送功能');
      break
    default:
      Message.error('未知的事件类型');
      break
  }
}
